package dt.day03;

import java.text.SimpleDateFormat;
import java.util.*;

/**
 * 作业点评：
 * 1: 人员编号完成的不错
 * 2: 100个人随机金额完成
 * 3: 按照从大到小排序未完成，运行未按照从大到小进行排序
 * 4：编号和金额初始化时，应该是一一对应的，分离的写法排序会导致人员和金额错乱，
 *    实际的最高金额和最低金额并不是那个人
 */
public class Test02 {
    public static void main(String[] args) {
        Date date = new Date();
        //格式化时间
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
        Map<String,Integer> map=new HashMap<>();
        List<Integer> list=new ArrayList<>();
        String str="";
        for (int i=1;i<=100;i++){
            int price=(int)(2000+Math.random()*(4000-2000+1));
            if(i<10){
                str="P"+simpleDateFormat.format(date)+"00"+i;
                map.put(str,price);
            }else if (i<100){
                str="P"+simpleDateFormat.format(date)+"0"+i;
                map.put(str,price);
            }else {
                str="P"+simpleDateFormat.format(date)+i;
                map.put(str,price);
            }
        }
        //通过Map.keySet遍历key和value
        for (String key:map.keySet()) {
            //map.get(key):返回指定键所映射的值
            list.add(map.get(key));
        }
        //升序
        //Collections.sort(list);
        //反转
        Collections.reverse(list);
        System.out.println("=============================================================");
        System.out.println("金额降序：");
        //lambda 表达式打印值
        list.forEach(n-> System.out.print(n+", "));
        System.out.println("==============================================================");
        System.out.println("==============================================================");
        for (String key:map.keySet()) {
            if (map.get(key)==list.get(0)){
                System.out.println("最高金额的编号："+key);
            }
            if (map.get(key)==list.get(list.size()-1)){
                System.out.println("最低金额的编号："+key);
            }
        }
        System.out.println("=============================================================");
        System.out.println("最高金额："+list.get(0)+"\t最低金额："+list.get(list.size()-1));
        System.out.println("=============================================================");

        for (int i=0;i<list.size();i++){
            for (String key:map.keySet()) {
                if (list.get(i)==map.get(key)){
                    System.out.println("编号："+key+"\t消费金："+list.get(i));
                }
            }
        }
    }
}
